package com.farben.system.domain;

import java.util.Date;

import com.farben.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.farben.common.annotation.Excel;
import lombok.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 后管应用信息对象 aging_design_app_info
 * 
 * @author farben
 * @date 2023-05-16
 */

@EqualsAndHashCode(callSuper = true)
@Data
@With
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AgingDesignAppInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 应用id */
    private String appId;

    /** 应用名 */
    private String appName;

    /** 应用code */
    private String appCode;

    /** 开发负责人 */
    @Excel(name = "开发负责人")
    private String devOwner;

    /** 产品负责人 */
    @Excel(name = "产品负责人")
    private String prdOwner;

    /** 产品经理 */
    @Excel(name = "产品经理")
    private String prdManager;

    /** 开发人员 */
    @Excel(name = "开发人员")
    private String devs;

    /** 0-App 1-Res 2-Appkey */
    @Excel(name = "0-App 1-Res 2-Appkey")
    private String appType;

    /** 保留1 */
    @Excel(name = "保留1")
    private String reserve1;

    /** 保留2 */
    @Excel(name = "保留2")
    private String reserve2;

    /** 修改者 */
    @Excel(name = "修改者")
    private String updatedBy;

    /** 创建者 */
    @Excel(name = "创建者")
    private String createdBy;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedDate;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdDate;

    /** 有效时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expiredtime;

    private String userId;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("appId", getAppId())
            .append("appName", getAppName())
            .append("appCode", getAppCode())
            .append("devOwner", getDevOwner())
            .append("prdOwner", getPrdOwner())
            .append("prdManager", getPrdManager())
            .append("devs", getDevs())
            .append("appType", getAppType())
            .append("reserve1", getReserve1())
            .append("reserve2", getReserve2())
            .append("updatedBy", getUpdatedBy())
            .append("createdBy", getCreatedBy())
            .append("updatedDate", getUpdatedDate())
            .append("createdDate", getCreatedDate())
            .append("expiredtime", getExpiredtime())
            .toString();
    }
}
